Page({
  data: {
    liaoTiandata: {}, // 修改变量名为 liaoTiandata 以匹配 WXML
    sender_name:"",
    sendhidden:false
  },

  onLoad: function(options) {
    // 接收并解析传递的数据
    if (options.data) {
      try {
        this.setData({
          liaoTiandata: JSON.parse(options.data)
        });
      } catch (e) {
        console.error('数据解析错误:', e);
        // 可以设置默认数据，避免页面空白
        this.setData({
          liaoTiandata: {
            sender_name: '数据加载失败',
            neiRong: '请稍后重试'
          }
        });
      }
    }
  },
  // 输入框获取焦点时触发（键盘弹出）
  onInputFocus: function(e) {
    this.setData({
      sendhidden:true
    })
  },

  // 输入框失去焦点时触发（键盘收起）
  onInputBlur: function(e) {
    this.setData({
      sendhidden:false
    })
  },
  // 调用相机拍照
  takePhoto: function() {
    const that = this;
    
    // 检查用户是否授权相机
    wx.getSetting({
      success(res) {
        // 如果没有授权，则请求授权
        if (!res.authSetting['scope.camera']) {
          wx.authorize({
            scope: 'scope.camera',
            success() {
              // 用户同意授权后，打开相机
              that.openCamera();
            },
            fail() {
              // 用户拒绝授权，引导用户去设置页面授权
              wx.showModal({
                title: '提示',
                content: '需要您授权相机功能才能拍照',
                success(res) {
                  if (res.confirm) {
                    wx.openSetting({
                      success(settingRes) {
                        if (settingRes.authSetting['scope.camera']) {
                          that.openCamera();
                        }
                      }
                    });
                  }
                }
              });
            }
          });
        } else {
          // 已经授权，直接打开相机
          that.openCamera();
        }
      }
    });
  },
  
  // 打开相机
  openCamera: function() {
    wx.chooseImage({
      count: 1, // 最多可以选择的图片张数
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['camera'], // 指定来源是相机
      success: (res) => {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePath = res.tempFilePaths[0];
        this.sendImageMessage(tempFilePath);
      },
      fail: (err) => {
        console.error('拍照失败:', err);
        wx.showToast({
          title: '拍照失败',
          icon: 'none'
        });
      }
    });
  },
  // 监听输入框内容变化
  onInputChange: function(e) {
    this.setData({
      inputValue: e.detail.value
    });
  },
  
  // 发送文本消息
  sendMessage: function() {
    const { inputValue, liaoTiandata } = this.data;
    
    // 检查输入内容是否为空
    if (!inputValue.trim()) {
      wx.showToast({
        title: '消息内容不能为空',
        icon: 'none'
      });
      return;
    }
    
    // 创建新消息对象
    const newMessage = {
      id: Date.now(), // 使用时间戳作为唯一ID
      sender_name: "张仲景传人1", // 假设当前用户名称
      sender_img: "/images/user1.png", // 假设当前用户头像
      content: inputValue
    };
    
    // 将新消息添加到聊天记录中
    const updatedMessages = [...liaoTiandata, newMessage];
    
    // 更新数据
    this.setData({
      liaoTiandata: updatedMessages,
      inputValue: "", // 清空输入框
      scrollToView: `message-${newMessage.id}` // 滚动到新消息
    });
  },
  // 发送图片消息
  sendImageMessage: function(imagePath) {
    const { liaoTiandata } = this.data;
    
    // 创建新的图片消息对象
    const newImageMessage = {
      id: Date.now(), // 使用时间戳作为唯一ID
      sender_name: "张仲景传人1", // 假设当前用户名称
      sender_img: "/images/user1.png", // 假设当前用户头像
      image: imagePath // 图片路径
    };
    
    // 将新消息添加到聊天记录中
    const updatedMessages = [...liaoTiandata, newImageMessage];
    
    // 更新数据
    this.setData({
      liaoTiandata: updatedMessages,
      scrollToView: `message-${newImageMessage.id}` // 滚动到新消息
    });
  }
})